]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
NetworkAgent: cancel requests when disabling component
authorGiovanni Campagna <gcampagna@src.gnome.org>
Mon, 22 Oct 2012 21:13:45 +0000 (23:13 +0200)
committerGiovanni Campagna <gcampagna@src.gnome.org>
Tue, 30 Oct 2012 15:34:13 +0000 (16:34 +0100)
When the NetworkAgent is disabled (for example because the lock screen
is being activated), cancel all modal dialogs.

https://bugzilla.gnome.org/show_bug.cgi?id=685239

js/ui/components/networkAgent.js

index 2eaca0c51d4ac521a98b9f120b60dd085bf7bd20..986c4bd63f21aacbfce1de2f34351ff3ade2732f 100644 (file)
@@ -408,7 +408,10 @@ const VPNRequestHandler = new Lang.Class({
         }
     },
 
-    cancel: function() {
+    cancel: function(respond) {
+        if (respond)
+            this._agent.respond(this._requestId, Shell.NetworkAgentResponse.USER_CANCELED);
+
         if (this._newStylePlugin && this._shellDialog) {
             this._shellDialog.close(global.get_current_time());
             this._shellDialog.destroy();
@@ -599,6 +602,16 @@ const NetworkAgent = new Lang.Class({
     },
 
     disable: function() {
+        let requestId;
+
+        for (requestId in this._dialogs)
+            this._dialogs[requestId].cancel();
+        this._dialogs = { };
+
+        for (requestId in this._vpnRequests)
+            this._vpnRequests[requestId].cancel(true);
+        this._vpnRequests = { };
+
         this._native.unregister();
     },
 
@@ -622,7 +635,7 @@ const NetworkAgent = new Lang.Class({
             this._dialogs[requestId].destroy();
             delete this._dialogs[requestId];
         } else if (this._vpnRequests[requestId]) {
-            this._vpnRequests[requestId].cancel();
+            this._vpnRequests[requestId].cancel(false);
             delete this._vpnRequests[requestId];
         }
     },